<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich">
         <style>
            .barsearch {
                height:14px;
                width:100px;
            }
            .barsearchbutton {
                border-width:1px;
                background-color:#{a4jSkin.generalBackgroundColor};
            }
        </style>    

        <a4j:form>
        <rich:toolBar height="34" width="700" itemSeparator="line">
            <rich:toolBarGroup>
                <a4j:commandLink reRender="userData,userList" action="#{UsersAgent.showNewUserPane}">
                    <h:graphicImage id="new" value="/richfaces/toolBar/images/print_edit.gif" border="0"/>
                    <h:outputLabel value="Nowy" for="new" />
                </a4j:commandLink>
            </rich:toolBarGroup>
            <rich:toolBarGroup>
                <a4j:commandLink reRender="userData,userList" action="#{UsersAgent.showEditUserPane}">
                    <h:graphicImage id="edit" value="/richfaces/toolBar/images/print.gif" />
                    <h:outputLabel value="Edytuj" for="edit" />
                </a4j:commandLink>
            </rich:toolBarGroup>
            <rich:toolBarGroup>
                <a4j:commandLink reRender="userData,userList" action="#{UsersAgent.refreshList}">
                    <h:graphicImage id="refresh" value="/richfaces/toolBar/images/print_preview.gif" />
                    <h:outputLabel value="Odśwież" for="refresh" />
                </a4j:commandLink>
            </rich:toolBarGroup>
            <rich:toolBarGroup location="right">
                <h:inputText styleClass="barsearch" value="#{UsersAgent.searchString}"/>
                <a4j:commandButton styleClass="barsearchbutton" action="#{UsersAgent.search}" value="Szukaj" reRender="messages,userList"/>
            </rich:toolBarGroup>
        </rich:toolBar>
        </a4j:form>
        <a4j:form id="userData">
                <h:panelGrid columns="3" rendered="#{UsersAgent.userDataPaneActive}" width="700px">
                    <h:outputLabel value="Identyfikator"/>
                    <h:outputLabel value="Nazwa użytkownika"/>
                    <h:outputLabel value="Imię użytkownika"/>
                    <h:outputText label="Identyfikator" value="#{UsersAgent.user.usrId}" />
                    <h:inputText label="Nazwa użytkownika" value="#{UsersAgent.user.usrName}">
                        <f:validator validatorId="emailValidator"/>
                    </h:inputText>
                    <h:inputText label="Imię" value="#{UsersAgent.user.usrFirstName}">
                        <f:validateLength minimum="3"/>
                    </h:inputText>
                    <h:outputLabel value="Nazwisko użytkownika"/>
                    <h:outputLabel value="Hasło użytkownika"/>
                    <h:outputLabel value="Potwierdzenie hasła"/>
                    <h:inputText label="Nazwisko" value="#{UsersAgent.user.usrLastName}">
                        <f:validateLength minimum="3"/>
                    </h:inputText>
                    <h:inputSecret label="Hasło" value="#{UsersAgent.user.usrPass}">
                        <f:validator validatorId="passwordValidator"/>
                    </h:inputSecret>
                    <h:inputSecret label="Powtórzenie hasła" value="#{UsersAgent.usrPassConfirm}"/>
                </h:panelGrid>
                <h:panelGroup rendered="#{UsersAgent.userDataPaneActive}" width="700px">
                    <a4j:commandButton value="Utwórz" rendered="#{not UsersAgent.editMode}" action="#{UsersAgent.create}" reRender="userData,userList,messages"/>
                    <a4j:commandButton value="Zapisz" rendered="#{UsersAgent.editMode and not empty UsersAgent.user.usrId}" action="#{UsersAgent.edit}" reRender="userData,userList,messages"/>
                    <a4j:commandButton value="Usuń" rendered="#{UsersAgent.editMode and not empty UsersAgent.user.usrId}" action="#{UsersAgent.delete}" reRender="userData,userList,messages"/>
                    <a4j:commandButton value="Zamknij" type="reset" immediate="true" reRender="userData,userList,userList,messages">
                        <a4j:actionparam assignTo="#{UsersAgent.userDataPaneActive}" value="false"/>
                        <a4j:actionparam assignTo="#{UsersAgent.userListActive}" value="true"/>
                    </a4j:commandButton>
                </h:panelGroup>
        </a4j:form>
        <a4j:form id="userList">
        <rich:dataTable rendered="#{UsersAgent.userListActive}" value="#{UsersAgent.users}" var="userRow" rowKeyVar="row" border="1" width="700" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" onRowMouseOver="this.style.backgroundColor='#6c6'">
            <a4j:support event="onRowClick" reRender="userData" action="#{UsersAgent.selectUser}">
                <a4j:actionparam name="key" value="#{row}" assignTo="#{UsersAgent.selectedUserIndex}" />
            </a4j:support>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Email" />
                </f:facet>
                <h:outputText value="#{userRow.usrName}" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Imię" />
                </f:facet>
                <h:outputText value="#{userRow.usrFirstName}" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Nazwisko" />
                </f:facet>
                <h:outputText value="#{userRow.usrLastName}" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Data utworzenia" />
                </f:facet>
                <h:outputText value="#{userRow.usrDate}">
                    <f:convertDateTime dateStyle="long" type="both"/>
                </h:outputText>
            </h:column>
        </rich:dataTable>
        </a4j:form>
</ui:composition>
